UML, Unified Modeling Language : Behavior Diagrams
活動圖與進階圖設計 Activity Diagram and Advanced Diagrams
Design
如果你不想讀700頁的教科書,才知道什麼是MIS,本系列講義可以讓你立刻認識「MIS 管理資訊系統」的目標、開發方法、實務應用,提供「TX 1-2-3-4簡則」作為「系統分析與設計(SA&D)」最簡明的指導,特別適合中小型系統之開發與分析。
並隨時更新最新發展,如UML, NoSQL資料庫, 決策支援,
人工智慧‧大數據‧決策參數庫,
知識管理, 與網路大數據數位分析...等。 |
在資訊系統愈來愈往大規模化,複雜化的發展趨勢下,促成了統一塑模語言(UML, Unified Modeling Language)的誕生。「塑模」的意思就是以圖形的方式,先將系統的功能與結構畫成「模型」與藍圖,然後再依據藍圖進行實體開發。
UML 2.x 定義的的塑模圖形(UML 2.x Diagrams)下分2大類組:結構圖形組(Structure diagrams)、行為圖形組(Behavior diagrams)。
統雄老師建議:將 2 圖組,再分為A, B 兩組:
A 組:基本圖,適用所有中小型系統分析與設計。亦即,並非所有的圖都要用到。
B 組:進階圖,針對大型系統分析與設計,再使用。
行為圖形組(Behavior diagrams)
類同傳統系統分析中的「前端分析」,強調系統模型中觸發的事件或相關行動,包括:使用個案圖 (Use Case diagram)、活動圖(Activity diagram) 、狀態機圖 (State Machine diagram) 和互動圖形子集合(Interaction diagrams),在子集合內又包括4種圖。
其中最重要的就是使用個案圖 (Use Case diagram)和活動圖(Activity diagram) ,前者是UML 特別定義的概念模型設計,後者就相當於傳統作業結構流程圖(Workflow Chart, WFC),對一般中小型系統的前端分析,已足以因應。
A 組:基本圖
活動圖(Activity diagram)
活動圖(Activity diagram) 定義系統的控制流和物件流 flow of control or object flow,和作業結構流程圖(Workflow Chart, WFC)中強調分析「程序」「選擇」「輸出入」「起始結束」…等,其實是在相同意涵上作擴充與更新。
BPMN 商業流程模型和標記法的概念與使用方式,與活動圖(Activity diagram) 幾乎相同,所以「Agile 敏捷系」的開發者,也許只用這個圖就夠了。
活動圖以控制節點、圓角矩形、與箭頭直線表現。 圖示要呈現出來的是:行動 action、物件 object 與控制 control。
控制節點有幾個常用圖示如下。
起點 |
|
活動終點 |
|
資料流終點 |
圓角矩形表示「行動」action 與活動點 activity node,另以菱形表示「多途徑選擇」。
箭頭直線表現「物件流」。
基本活動模版圖
幾乎所有系統的基本活動流程,都如下圖。
矩形為 UML 元素,上方、或左上方之缺角矩形,為元素命名區,act 表示為「活動圖」,圖名稱為「使用者認證」,再標明認證格式為字串。
觸發起點,使用者必須輸入身分和密碼。
模組化活動圖:線上消費系統活動圖
以前文線上消費的使用個案圖,發展為實體的活動圖則如下,並採用模組化設計。
主活動流為:登入後選擇搜尋或瀏覽,經過各種反復考量後,加入購物車,再三思後結帳。並經由控制節點,可連結以下模組。
A: 任意時間都可以使用購物車。
B: 購物後,還可以再回頭瀏覽商品,增加購物。
C: 結帳後,還可再次購物。
分欄列式活動圖設計-橫式:公文簽核追蹤系統活動圖
活動圖可使用分欄列式設計,表現「分工」活動,以下公文簽核追蹤活動圖為橫式設計,以每個使用者為列,分列的線,稱為分工線 swimlanes。
使用者分為:創文者、編審、簽核主管、保管者。
這個系統設計的特色,是在公文決行後,有「考核」行動,如果公文決行事項還在進行中,有調整的必要,編審會加注修改事項,送回創文者。如果公文決行事項已經完成結束,則送保管者。
分欄列式活動圖設計-直式:自動售票系統活動圖
以下自動售票系統活動圖為直式設計,以每個使用者為欄,分欄的線,一樣稱為分工線 swimlanes。特別注意的是,「分工」的不一定是自然人,本例只有客戶是自然人,售票機和銀行都不是。
請讀者嘗試解讀。
中小型系統分析,可直接跳到結構圖形組。
B 組:進階圖
狀態機圖 (State Machine diagram)
當系統會存在幾種的不同狀態時,定義狀態與因應的行動,便會使用到狀態機圖。
狀態機圖所用圖示和活動圖相同,唯圓角矩形表示狀態,而因應活動寫在線條旁。
以下為銀行自動提款機狀態機圖,定義3種狀態:靜止、運作服務、服務障礙。
平常在靜止狀態,有人插入提款卡後產生觸發機制,進入運作服務;如果在服務過程中發生錯誤,則進入服務障礙狀態。
進階設計
以上基本設計討論後,發現還必須加入幾個狀態:停電狀態、系統自動檢查狀態、系統自動修復狀態,再繪製進階狀態機圖如下。
互動圖形子集合(Interaction diagrams)
這是屬於行為圖形的子集合,強調系統模型中的資料流程,包括 4 種圖:
通信圖(Communication diagram)
實務界一般認為是罕用圖,可以用活動圖取代。
時序圖(Sequence diagram)
Sequence diagram 一般中文均譯為時序圖,其實它是專門處理 message(專有定義)交換的設計圖。
它另有一套 lifelines (專有定義)的圖示。
以下為網路使用者,向線上書店查詢的圖。
時間圖(Timing diagram)
Timing diagram 一般中文均譯為時間圖,其實它是專門處理互動活動時序的設計圖,也需使用一套 lifelines (專有定義)的圖示。
下圖表示病毒在時程發展上的 4 階段:休眠、傳播、感染、執行破壞。
交互概述圖(Interaction overview diagram)
實務界一般認為是累贅圖,可以用活動圖取代。
又稱「特化活動圖」,就是活動圖的另一種表現方式,採用簡化圖示,而突顯「交互行為」,如電子商務系統的交易互動流程。
此為前文線上消費系統,改以交互概述圖繪製,可比較其略有不同。如果已作活動圖,可以省略此圖。
此元素名稱為 sd,意思是 Interaction 圖,很容易讓人不解。圖中有許多 ref 元素圖, 表示 reference interaction,亦即可模組化之另一個 UML 圖,為常用的技術。